1. Field
This invention relates to shared virtual storage and more particularly relates to storage write caching.
2. Description
Computer system virtualization derives its efficiency from the sharing of common physical resources among multiple virtual computers, such as diskless user clients sharing a common disk image on a storage area network (“SAN”). However, it has proven difficult to preserve the coherency of the shared resources in the face of local user modifications and global maintenance updates, without significantly degrading the efficiency of the overall system.
Common image solutions today are typically implemented in one of two ways. One is to allow read-only access to the common image. Any writes or changes are cached in memory, and lost when the user shuts down. These solutions require s SAN or a network-attached storage (“NAS”) to allow the end user to access a location on the SAN or NAS to store their data.
The second method is to separate the writes from the reads at a block or sector level. This relies on a rigid block structure arrangement, which negates any user changes when the common image is updated, such as by applying a patch.
Some vendors propose application streaming as a method for applying a patch to the operating system (“OS”) image for the second method. Application streaming is a method to dynamically apply an overlay to the common image to allow that application or patch to run. This approach has the disadvantage that each application or patch that is streamed imposes overhead above the application or patch itself. This merely delays the need to update the common image. Eventually the point is reached where there is such a large amount of streaming that it overwhelms the system, and hinders performance.
Thus it can be seen that high overhead, inefficiency, and the resulting overall poor performance have been the perennial challenges for storage write caching in a shared virtual storage environment.